/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import dao.impl.HistoricoDaoImpl;
import dao.impl.NotificarEmail;
import dao.impl.TransacoesDaoImpl;
import dao.impl.VeiculosDaoImpl;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import model.Historico;
import model.Transacoes;
import model.Usuarios;
import model.Veiculos;

/**
 *
 * @author rafael
 */
@ManagedBean
@SessionScoped
public class BeanTransacoes implements Serializable {

    /**
     * Creates a new instance of BeanTransacoes
     */
    List<Transacoes> lista;

    public BeanTransacoes() {
    }

    public List<Transacoes> buscarTransacoes(int FK_TRANSACOES_VENDEDOR) {
        this.lista = new TransacoesDaoImpl().selectVendedor(FK_TRANSACOES_VENDEDOR);
        return lista;
    }

    public void concluirTransacoes(Transacoes transacoes) {

        transacoes.setTerminada(1);
        Usuarios usuarios = transacoes.getUsuariosByFkTransacoesComprador();
        Veiculos veiculos = transacoes.getVeiculos();

        Historico historico = new Historico();
        historico.setUsuariosByFkUsuarioVendedor(transacoes.getUsuariosByFkTransacoesVendedor());
        historico.setUsuariosByFkUsuarioComprador(transacoes.getUsuariosByFkTransacoesComprador());
        historico.setComprador(transacoes.getUsuariosByFkTransacoesComprador().getApelido());
        historico.setVendedor(transacoes.getUsuariosByFkTransacoesVendedor().getApelido());
        historico.setVeiculo(transacoes.getVeiculos().getNome());
        historico.setValor(transacoes.getVeiculos().getValor().toString());


        veiculos.setUsuarios(usuarios);
        transacoes.setVeiculos(veiculos);

        new HistoricoDaoImpl().inserir(historico);
        new VeiculosDaoImpl().atualizar(veiculos);
        new TransacoesDaoImpl().eliminar(transacoes);
        
    }
    public void cancelarTransacao(Transacoes transacoes){
        new TransacoesDaoImpl().eliminar(transacoes);
    }

    public void inserirTransacoes(Veiculos veiculo, Usuarios usuarioLocal) {

        Transacoes transacoes = new Transacoes();
        transacoes.setVeiculos(veiculo);
        transacoes.setPkFkTransacoesVeiculos(veiculo.getPkVeiculos());
        transacoes.setUsuariosByFkTransacoesComprador(usuarioLocal);
        transacoes.setUsuariosByFkTransacoesVendedor(veiculo.getUsuarios());
        transacoes.setTerminada(0);
        new TransacoesDaoImpl().inserir(transacoes);
        new NotificarEmail().sendEmail(veiculo.getNome(), usuarioLocal.getApelido(), veiculo.getUsuarios().getApelido(), veiculo.getUsuarios().getEmail());
    }
}
